/*
 * Copyright (c) 2007-2021 西安交通信息投资营运有限公司 版权所有
 */

package com.xci.xajtfb.bus.dao;

import com.github.lvyanyang.annotation.Paging;
import com.github.lvyanyang.annotation.Top;
import com.xci.xajtfb.bus.entity.WxMember;
import com.xci.xajtfb.bus.filter.WxMemberFilter;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 投诉用户表数据层
 * @author 吕艳阳 lvyanyang@xci96716.com
 * @since 2021-03-03 17:35:58
 */
public interface WxMemberDao {
    /**
     * 新建投诉用户表
     * @param entity 投诉用户表实体
     * @return 返回影响的行数
     */
    int insert(@Param("entity") WxMember entity);

    /**
     * 修改投诉用户表
     * @param entity 投诉用户表实体
     * @return 返回影响的行数
     */
    int update(@Param("entity") WxMember entity);

    /**
     * 根据主键删除投诉用户表
     * @param userid 投诉用户表主键
     * @return 返回影响的行数
     */
    int deleteById(@Param("userid") String userid);

    /**
    * 是否存在指定主键的投诉用户表
    * @param openid 用户openid
    * @return 如果存在返回true
    */
    boolean existxByOpenId(@Param("openid") String openid);

    /**
     * 根据主键查询单个投诉用户表
     * @param userid 投诉用户表主键
     * @return 返回投诉用户表实体
     */
    WxMember selectById(@Param("userid") String userid);

    /**
     * 根据用户openId查询单个用户
     * @param openid 用户openid
     * @return 返回投诉用户表实体
     */
    @Top
    WxMember selectByOpenId(@Param("openid") String openid);

    /**
     * 查询投诉用户表列表
     * @param filter 过滤条件
     * @return 返回投诉用户表列表
     */
    List<WxMember> selectList(@Param("filter") WxMemberFilter filter);

    /**
     * 查询投诉用户表分页列表
     * @param filter 过滤条件
     * @return 返回投诉用户表分页列表
     */
    /*
        allowSortNames = {"phone","name","idcard","address","email","wechatid","registereddate","reserve1","reserve2","reserve3"},
        sortNameMaps = {"phone:phone","name:name","idcard:idcard","address:address","email:email","wechatid:wechatid","registereddate:registereddate","reserve1:reserve1","reserve2:reserve2","reserve3:reserve3"}
    */
    @Paging
    List<WxMember> selectPageList(@Param("filter") WxMemberFilter filter);
}